// 输入一个英文句子，翻转句子中单词的顺序，但单词内字符的顺序不变。为简单起见，标点符号和普通字母一样处理。例如输入字符串"I am a student. "，则输出"student. a am I"

// 来源：力扣（LeetCode）
// 链接：https://leetcode-cn.com/problems/fan-zhuan-dan-ci-shun-xu-lcof
// 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。

#include<bits/stdc++.h>
using namespace std;

// 遍历

// 执行用时：
// 32 ms
// , 在所有 C++ 提交中击败了
// 6.36%
// 的用户
// 内存消耗：
// 77.8 MB
// , 在所有 C++ 提交中击败了
// 9.41%
// 的用户




class Solution {
public:
    string reverseWords(string s) {
        if(s==""){
            return "";
        }
        string res ="";
        string temp="";
        vector<string> vec;
        // if(s.size()==0){
        //     return res;
        // }
        for(int i=0;i<s.size();++i){
            if(s[i]!=' '){
                temp=temp+s[i];
            }
            else{
                // res = temp + res;
                if(temp!=""){
                    vec.emplace_back(temp);
                }
                temp ="";
            }
        }
        if(temp==""&&vec.size()==0){
            return "";
        }
        if(temp!=""){
            vec.emplace_back(temp);
        }
        for(int i=0;i<vec.size()-1;++i){
            res = " "+ vec[i] +res;
        }
        res = vec[vec.size()-1]+res;
        // res = temp + res;
        return res;
    }
};